package com.night.icm.service.business.service;

import com.night.icm.common.utils.PageDataDTO;
import com.night.icm.model.business.NotificationInformationDTO;

import java.util.List;

/**
 * NotificationInformationService
 *
 * @author Liao ZhiYong
 * @date 2020/4/1
 */
public interface NotificationInformationService {

    /**
     * 分页查找通知信息
     *
     * @param page         页号，从0开始
     * @param size         每页记录条数
     * @param sort         排序字段，例如：字段1,asc,字段2,desc
     * @param title        通知标题
     * @param type         通知类型
     * @param receiverName 通知对象
     * @return 通知信息
     */
    PageDataDTO<NotificationInformationDTO> findOnePage(int page, int size, String sort, String title, String type, String receiverName);

    /**
     * 新建通知
     *
     * @param notificationInformationDTO 通知
     * @return 通知
     */
    NotificationInformationDTO create(NotificationInformationDTO notificationInformationDTO);

    /**
     * 根据接收人id查找通知
     *
     * @param receiverId 接收者id
     * @return 通知
     */
    List<NotificationInformationDTO> findByReceiverId(String receiverId);

    /**
     * 通过id查找通知
     *
     * @param id id
     * @return 通知
     */
    NotificationInformationDTO findById(String id);

    /**
     * 删除通知
     *
     * @param id id
     */
    void delete(String id);

    /**
     * 改变通知状态
     *
     * @param id id
     * @return 状态
     */
    Boolean changeStatus(String id);
}
